Recursive Program Synthesis

نویسندگان

  • Aws Albarghouthi
  • Sumit Gulwani
  • Zachary Kincaid
چکیده

Input-output examples are a simple and accessible way of describing program behaviour. Program synthesis from input-output examples has the potential of extending the range of computational tasks achievable by end-users who have no programming knowledge, but can articulate their desired computations by describing input-output behaviour. In this paper, we present Escher, a generic and efficient algorithm that interacts with the user via input-output examples, and synthesizes recursive programs implementing intended behaviour. Escher is parameterized by the components (instructions) that can be used in the program, thus providing a generic synthesis algorithm that can be instantiated to suit different domains. To search through the space of programs, Escher adopts a novel search strategy that utilizes special data structures for inferring conditionals and synthesizing recursive procedures. Our experimental evaluation of Escher demonstrates its ability to efficiently synthesize a wide range of programs, manipulating integers, lists, and trees. Moreover, we show that Escher outperforms a state-ofthe-art SAT-based synthesis tool from the literature.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Inductive Program Synthesis as Induction of Context - Free Tree Grammars

We present an application of grammar induction in the domain of inductive program synthesis. Synthesis of recursive programs from input/output examples involves the solution of two subproblems: transforming examples into straightforward programs and folding straightforward programs into (a set of) recursive equations. In this paper we focus on the second part of the synthesis problem, which cor...

متن کامل

Inductive Synthesis of Recursive Logic Programs: Achievements and Prospects

The inductive synthesis of recursive logic programs from incomplete information, such as input/output examples, is a challenging subfield both of ILP (Inductive Logic Programming) and of the synthesis (in general) of logic programs from formal specifications. We first overview past and present achievements, focusing on the techniques that were designed specifically for the inductive synthesis o...

متن کامل

Inductive Program Synthesis: From Theory to Application

We present an approach to folding of finite program terms based on the detection of recurrence relations in a single given term which is considered as the kth unfolding of an unknown recursive program. Our approach goes beyond Summers’ classical approach of inductive program synthesis in several aspects and allows to deal with a larger class of programming problems. We show how inductive synthe...

متن کامل

Induction of Recursive Program Schemes

In this paper we present an approach to the induction of re-cursive structures from examples which is based on the notion of recursive program schemes. We separate induction from examples in two stages: (1) constructing initial programs from examples and (2) folding initial programs to recursive program schemes. By this separation, the induction of recursive program schemes can be reduced to a ...

متن کامل

Iterative Macro-Operators Revisited: Applying Program Synthesis to Learning in Planning

The goal of this paper is to demonstrate that a method for inductive program synthesis (as described in [SW98]) can be applied to the problem of learning cyclic (iterative/recursive) macro-operations from planning. Input in the program synthesis system is a so-called initial program which represents an ordered set of straight-forward transformations from input states to the desired output. In t...

متن کامل

Inductive Synthesis of Recursive Programs – A Comparison of Three Systems

The paper we present compares the three systems for program synthesis, namely Adate, an approach through evolutionary computation, the inductive/abductive logic program synthesizer Dialogs-II and the classification learner Atre, capable of simultaneously learning mutually dependent, recursive target predicates. It gives an overview over the functionality of all three systems, and evaluates thei...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2013